사이트 내 전체검색
sql 바이너리가 아닌 한글 이름 ㄱ,ㄴ,ㄷ…순 정렬
최고관리자
https://cmd.kr/server/1074 URL이 복사되었습니다.

본문

SELECT * FROM `g4_write_bj_player`
where binary wr_9 between binary '가' and binary '나' order by binary wr_9

select name from test where binary name between binary “가” and binary “나” order by binary name;
<!a href='http://blog.naver.com/PostView.nhn?blogId=belladonnaf&logNo=50025650362' target='_blank'>

한글 초성 인덱스로 검색하기(사전용)

오늘 사전을 만들다가… 한번 해봤읍니다..
처음에는 어떻게 해야될지 감을 못잡아서 한참 동안 인터넷을 뒤졌는데…
막상 해놓고 보니.. 무지하게 단순하네요.. ㅜ.ㅜ

일단 인덱스 리스트에서…

list.php?i=a // ‘a’로 시작하는 subject 검색
list.php?i=1 // ‘1′로 시작하는 subject 검색
list.php?i=ㄱ // ‘ㄱ’으로 시작하는 subject 검색

이런식으로 검색할 인덱스를 넘겨 줍니다.
그런다음 검색할 인덱스($i)의 상태에 따라서 쿼리문을 만듭니다..
상당히 무슥하게 하나씩 처리해 주었는데… ㅡㅡ;;
한글의 경우 별다른 방법이 없을듯 하구요..
( if ~ else를 switch() 로 바꾸는 것이 더 낳을 라나?? )
주석은 간단하게 달았습니다…

제가 가진 게시판의 제목으로 테스트 했을때는 문제가 없었는데..
혹시 문제가 있다면… 조언을 해주시기 바랍니다..

ex> 마지막 ‘ㅎ’에 대해서 처리하는것
‘ㅎ’은 그 끝을 어떻게 결정해야 할지 몰라서.. 그냥 ‘하’ 이후의 모든 값을 가져오도록 하였습니다. ㅡㅡ;;

아.. 게시판 제목 컬럼에는 binary 옵션을 사용하지 않았습니다..
일반 varchar 형 컬럼입니다. 그래도 정렬이 잘 되네요.. ^^;;


????????????????????????????
// 검색할 인덱스가 숫자이거나 영문자라면..
if( preg_match( “/[0-9a-zA-Z]/”, $i ) )
{
// 매우 단순 간단한 정규식 검색….
$query    = “select subject from table_name where subject RLIKE ‘^$i’ order by subject”;
}
else if( “ㄱ” == $i ) // ‘ㄱ’으로 시작하는 subject 검색
{
$query    = “select subject from table_name
where subject RLIKE ‘^(ㄱ|ㄲ)’
OR ( subject >= ‘가’ AND subject < ‘나’ )
order by subject”;
}
else if( “ㄴ” == $i ) // ‘ㄴ’으로 시작하는 subject 검색
{
$query    = “select subject from table_name
where subject RLIKE ‘^ㄴ’
OR ( subject >= ‘나’ AND subject < ‘다’ )
order by subject”;
}


// 중간 생략.. ‘ㄱ’, ‘ㄲ’ 같이 쌍자음(이거 제대로된 명칭이 모죠?? ㅡㅡ;; ) 만 주의하면 됩니다.


else if( “ㅎ” == $i )
{
$query    = “select subject from table_name
where subject RLIKE ‘^ㅎ’ OR subject >= ‘하’
order by subject”;
}

// get list data && print list
$result    = mysql_query( $query ) or die( “mysql query error - $query<br>” );
while( $row = mysql_fetch_array( $result, MYSQL_ASSOC ) )
{ echo htmlspecialchars( stripslashes( $row[subject] ) ) .”<br>”;    }

댓글목록

등록된 댓글이 없습니다.

1,139 (23/23P)

Search

Copyright © Cmd 명령어 18.223.108.105